#ifndef GAMEENGINE_H
#define GAMEENGINE_H

#include <vector>
#include <set>
#include "Sprite.h"

namespace gaim{
    class GameEngine{
    public:
        GameEngine(int fps, int x, int y, int w, int h);
        ~GameEngine();
        void add(Sprite* s);
        void remove(Sprite* s);
        void run();
    private:
        int fps_;
        SDL_Surface* mainScreen_;
        std::set<Sprite*> sprites_;
          
    };//GameEngine
} //GameEng


#endif

//in the game engine, we will have to do the sdl init to start sdl.
//this is because we need to init it to use sdl's functions, but we dont want the user to have to do it in implementation
//SDL_Init( SDL_INIT_EVERYTHING ); 
//this should probably be done in the constructor


//we will also need to set up the screen size, which should be givable by the implementation.
//screen = SDL_SetVideoMode( 640, 480, 32, SDL_SWSURFACE ); 


//somehow the handling of the sprite images will need to be done. the implementation needs to decide how many sprites there will be
//as well as what image they will use, the position etc, according to our image class. 

//so the constructor will need many arguments, such as screen size, number of sprites for each kind, image that will be used etc 
